The invention relates to a method for transmitting a message and a network node and a network.
The exchange of information in modern networks, such as the Internet for example, usually works on the basis of the client-server principle. That means that a computer or a group of computers representing a server provide information. Other network nodes or computers which require this information retrieve it from the server.
This method has the disadvantage that only the server bears the load of distributing the information. The server must reply to all requests for concrete information itself and send the information to the corresponding clients which have made the request. This is particularly disadvantageous if a particular piece of information is new and is therefore retrieved by a great many clients in a short time. An example of such information is a software update, for example an update for an operating system. For such information it is necessary to provide a server capable of handling particularly high loads, which is capable of bearing the request load. Such a server is cost-intensive. If the number of requests for information declines in a short time, however, the server is no longer utilized to capacity. Investment in the high-performance server system is therefore superfluous after a short time.
Peer networks are an alternative which avoids the aforementioned disadvantages. These are networks of nodes with equality of access, i.e. computers. The peer-to-peer networks common today are an example of such a peer network. In general, peer networks are logical networks to which some nodes in a larger network, such as e.g. the Internet, are usually connected.
The most important property of peer networks is that each node can be a server and a client at the same time. This means that each node can retrieve information and also make information available. If a new piece of information such as, for example, a software update, is now to be made available, then in a peer network each node automatically offers the portion of the software update which is already stored on this node as a download for other nodes in the peer network. In general, a server which provides information such as, for example, the software update to the peer network is also necessary at least initially. However, this server no longer bears the main load of information distribution but rather the nodes in the peer network. These peer nodes are generally speaking computers belonging to network subscribers. These computers are charged with information distribution to the extent that their design permits. This means that the additional load for users of these computers generally goes unnoticed and that load distribution therefore solely depends on better use of existing resources.
In peer networks all nodes of the network operate with equal rights, in other words as peers. Each node in the network can obtain information from any other node in the network or forward information to it. In principle, this requires that all the nodes in the peer network are able to access each other. A problem may arise here if individual or even a large number of nodes in the peer network are subject to access protection. A node in the peer network may have such access protection if it is downstream of a restricted or port-restricted NAT (Network Address Translation) device. Such NAT devices have the property of only accepting incoming packets from an IP port combination or IP address to which a packet was previously sent from the receiving node. Even if the receiving node has already transmitted a packet to the sending node, receipt of a packet from the sending node is only possible for a short period, for example 30 seconds, in certain circumstances. As arbitrary access by a node in the peer network to another node in the peer network is therefore not possible, a peer network cannot be set up from nodes protected in this way without taking further measures.
A known solution for the aforementioned problem is a technology described as UDP Hole Punching. For this a hole-punching server known to all nodes is used as an aid. This provides communication between two protected nodes in the peer network. If a protected node in the peer network wants to set up a connection with a further protected node, the hole-punching server is notified of this. Hereupon the hole-punching server occasions both nodes to send each other cancellation messages in order to cancel the respective access protection by the NAT devices. In general, these cancellation messages cannot be received by the other node as a result of the access protection but nor is this necessary. As a result, however, both nodes can communicate with each other unhindered.
However, the aforementioned method has the disadvantage that a hole-punching server is required. Furthermore, this hole-punching server must be known or made known to all the nodes in the peer network. Furthermore, in a large peer network the load placed on the hole-punching server by communication requests may be very great, necessitating a correspondingly extensive and possibly cost-intensive design.